/* 
    现在使用 Promise + fs 完成回调地狱的问题

    需求：有三个文件 data/1.txt(1) data/2.txt(2) data/3.txt(3) 希望可以顺序的读取 1.txt 2.txt 3.txt 的内容。
翻译：
    1. 先读 1.txt
    2. 读完之后，在读 2.txt
    3. 读完之后，在读 3.txt

*/

const fs = require('fs');


const p1 = new Promise((resolve, reject) => {
    fs.readFile('./data/1.txt', 'utf8', (err, data) => {
        if (err) {
            reject(err);
        } else {
            resolve(data);
        }
    });
})


const p2 = new Promise((resolve, reject) => {
    fs.readFile('./data/2.txt', 'utf8', (err, data) => {
        if (err) {
            reject(err);
        } else {
            resolve(data);
        }
    });
})


const p3 = new Promise((resolve, reject) => {
    fs.readFile('./data/3.txt', 'utf8', (err, data) => {
        if (err) {
            reject(err);
        } else {
            resolve(data);
        }
    });
})

/* then 是可以连续的调用的 */

p1.then((data) => {
    console.log(data);
    /* 还可以继续继续的 return 1. 基本数据类型 2. Promise对象 */
    return 1;
}).then((data) => {
    console.log('data就是上一个then的返回值：', data);
    return 2;
}).then((data) => {
    console.log('data就是上第二个个then的返回值：', data);
    return 3;
}).then((data) => {
    console.log('data就是上第二个个then的返回值：', data);
})